package org.ch02.test01.demo03;

import org.ch02.entity.Student;

import java.lang.reflect.Constructor;

/**
 * 获取某个类的 Class 对象 - 方法三
 * 对象.getClass() : 获取对象的类的 Class 对象
 * class对象.getSuperClass() : 获取 class 对象指向类的父类的 Class 对象
 *
 * @author lwj
 * @date 2025-03-17
 * @vesion 1.0.0
 */
public class MainTest01 {
    public static void main(String[] args) throws Exception{
        Student stu = new Student();
        // 1.获取 Student 类的 Class 对象
        Class<?> clazz = stu.getClass();

        // 在反射中，把类相关信息封装为相关的对象
        // 2.获取类的构造方法对象 - Constructor
        Constructor<?> constructor = clazz.getConstructor();

        // 3.实例化对象
        Object object = constructor.newInstance();

        // 4.调用方法
        if(object instanceof Student){
            Student student = (Student) object;
            student.sayHello("张三");
        }
    }
}
